package cn.iocoder.yudao.module.alipay.controller.admin.infothirdaliapp.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;

/**
 * 第三方应用信息 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class InfoThirdAliAppBaseVO {

    @Schema(description = "应用id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20231212012451")
    @NotNull(message = "应用id不能为空")
    private Long appId;

    @Schema(description = "应用名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试应用")
    @NotNull(message = "应用名称不能为空")
    private String appName;

    @Schema(description = "应用logo", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "应用logo不能为空")
    private String appLogo;

    @Schema(description = "应用私钥")
    private String appPrivateKey;

    @Schema(description = "应用展示图片")
    private String appShowImage;

    @Schema(description = "应用公钥证书路径")
    private String appCertPath;

    @Schema(description = "支付宝公钥证书路径")
    private String alipayCertPath;

    @Schema(description = "支付宝根证书路径")
    private String alipayRootCertPath;

    @Schema(description = "签名类型")
    private String singType;

    @Schema(description = "请求格式")
    private String formatType;

    @Schema(description = "编码格式")
    private String charsetType;


    @Schema(description = "授权构造链接")
    private String appAuthUrl;

    @Schema(description = "应用文档地址", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "应用文档地址不能为空")
    private String appDoc;

    @Schema(description = "应用简介", example = "一款测试应用")
    private String appRemark;

    private Long templateId;

}
